home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / TEMP / GNU / bison / RpcalcLine < prev    next >
Text File  |  1995-06-28  |  1KB  |  31 lines

  1. Rpcalc Line
  2. Previous: <Rpcalc Input=>RpcalcInpu> * Next: <Rpcalc Expr=>RpcalcExpr> * Up: <Rpcalc Rules=>RpcalcRulf>
  3.  
  4. #Wrap on
  5. {fH5}Explanation of {fCode}line{f}{f}
  6.  
  7. Now consider the definition of {fCode}line{f}:
  8.  
  9. #Wrap off
  10. #fCode
  11. line:     '\\n'
  12.         | exp '\\n'  \{ printf ("\\t%.10g\\n", $1); \}
  13. ;
  14. #f
  15. #Wrap on
  16.  
  17. The first alternative is a token which is a newline character; this means
  18. that rpcalc accepts a blank line (and ignores it, since there is no
  19. action).  The second alternative is an expression followed by a newline.
  20. This is the alternative that makes rpcalc useful.  The semantic value of
  21. the {fCode}exp{f} grouping is the value of {fCode}$1{f} because the {fCode}exp{f} in
  22. question is the first symbol in the alternative.  The action prints this
  23. value, which is the result of the computation the user asked for.
  24.  
  25. This action is unusual because it does not assign a value to {fCode}$${f}.  As
  26. a consequence, the semantic value associated with the {fCode}line{f} is
  27. uninitialized (its value will be unpredictable).  This would be a bug if
  28. that value were ever used, but we don't use it: once rpcalc has printed the
  29. value of the user's input line, that value is no longer needed.
  30.  
  31.